Systems and methods for generating tree imagery

ABSTRACT

Method and system for generating tree imagery. For example, the method includes receiving an identification number associated with a tree, determining a first set of image rendering settings for generating an image of the tree based upon the identification number, receiving metadata associated with the tree, determining a second set of second image rendering settings for generating the image of the tree based upon the metadata, and generating the image of the tree based upon the first set of image rendering settings and the second set of image rendering settings.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 63/000,874, filed Mar. 27, 2020, incorporated by reference herein for all purposes.

International PCT Application No. PCT/US21/18233, titled “System and Methods for Providing Renewing Carbon Offsets” is incorporated by reference herein for all purposes.

The following five applications, including this one, are being filed concurrently and the other four are hereby incorporated by reference in their entirety for all purposes:

1. International PCT application Ser. No. ______, titled “Systems and Methods for Offering Carbon Offset Rewards that Correspond to Users” (Attorney Docket Number BOL-00007A-PCT);

2. International PCT application Ser. No. ______, titled “Systems and Methods for Providing Multiple Carbon Offset Sources” (Attorney Docket Number BOL-00007B-PCT);

3. International PCT application Ser. No. ______, titled “Systems and Methods for Generating Tree Imagery” (Attorney Docket Number BOL-00007G-PCT);

4. International PCT application Ser. No. ______, titled “Systems and Methods for Validating Planting of Trees” (Attorney Docket Number BOL-00007H-PCT); and

5. International PCT application Ser. No. ______, titled “Systems and Methods for Providing Renewing Carbon Offsets for a User Driving Period” (Attorney Docket Number BOL-00007J-PCT).

FIELD OF THE DISCLOSURE

Some embodiments of the present disclosure are directed to generating tree imagery. More particularly, certain embodiments of the present disclosure provide methods and systems for generating images of trees in a deterministic manner. Merely by way of example, the present disclosure has been applied to creating images of trees based upon various metadata associated with the trees. But it would be recognized that the present disclosure has much broader range of applicability.

BACKGROUND OF THE DISCLOSURE

Virtual depiction of trees can be found in a variety of applications ranging from forest management to virtual reality. To create images of trees, a user would manually configure the image rendering settings and/or let a computer program randomly determine such settings. However, this process is inefficient when modeling real-world trees. Hence it is highly desirable to develop new approaches that enable the virtual reconstruction of trees and other plants.

BRIEF SUMMARY OF THE DISCLOSURE

Some embodiments of the present disclosure are directed to generating tree imagery. More particularly, certain embodiments of the present disclosure provide methods and systems for generating images of trees in a deterministic manner. Merely by way of example, the present disclosure has been applied to creating images of trees based upon various metadata associated with the trees. But it would be recognized that the present disclosure has much broader range of applicability.

According to certain embodiments, a method for generating tree imagery includes receiving a first identification number associated with a first tree and determining one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the method includes receiving one or more first metadata associated with the first tree and determining one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the method includes generating the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.

According to some embodiments, a computing device for generating tree imagery includes one or more processors and a memory that stores instructions for execution by the one or more processors. The instructions, when executed, cause the one or more processors to receive a first identification number associated with a first tree and determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the instructions, when executed, cause the one or more processors to receive one or more first metadata associated with the first tree and determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the instructions, when executed, cause the one or more processors to generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.

According to certain embodiments, a non-transitory computer-readable medium stores instructions for generating tree imagery. The instructions are executed by one or more processors of a computing device. The non-transitory computer-readable medium includes instructions to receive a first identification number associated with a first tree and determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the non-transitory computer-readable medium includes instructions to receive one or more first metadata associated with the first tree and determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the non-transitory computer-readable medium includes instructions to generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.

Depending upon the embodiment, one or more benefits may be achieved. These benefits and various additional objects, features and advantages of the present disclosure can be fully appreciated with reference to the detailed description and accompanying drawings that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A and FIG. 1B are a simplified method for generating tree imagery according to certain embodiments of the present disclosure.

FIG. 2 is a simplified method for generating tree imagery according to some embodiments of the present disclosure.

FIG. 3 is a simplified computing device for generating tree imagery according to certain embodiments of the present disclosure.

FIG. 4 is a simplified system for generating tree imagery according to some embodiments of the present disclosure.

DETAILED DESCRIPTION OF THE DISCLOSURE

Some embodiments of the present disclosure are directed to generating tree imagery. More particularly, certain embodiments of the present disclosure provide methods and systems for generating images of trees in a deterministic manner. Merely by way of example, the present disclosure has been applied to creating images of trees based upon various metadata associated with the trees. But it would be recognized that the present disclosure has much broader range of applicability.

I. One or More Methods for Generating Tree Imagery According to Certain Embodiments

FIG. 1A and FIG. 1B are a simplified method for generating tree imagery according to certain embodiments of the present disclosure. The diagrams are merely examples, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 100 includes process 110 for receiving a first identification number of a first tree, process 115 for determining one or more first image rendering settings, process 120 for receiving one or more first metadata of the first tree, process 125 for determining one or more second image rendering settings, process 130 for generating a first image of the first tree, process 135 for receiving a second identification number of a second tree, process 140 for determining one or more third image rendering settings, process 145 for receiving one or more second metadata of the second tree, process 150 for determining one or more fourth image rendering settings, and process 155 for generating a second image of the second tree. Although the above has been shown using a selected group of processes for the method, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. Other processes may be inserted to those noted above. Depending upon the embodiment, the sequence of processes may be interchanged with others replaced. For example, some or all processes of the method are performed by a computing device or a processor directed by instructions stored in memory. As an example, some or all processes of the method are performed according to instructions stored in a non-transitory computer-readable medium.

At the process 110, the first identification number associated with the first tree is received according to some embodiments. In various embodiments, the first tree corresponds to an existing real-world tree and the first identification number is any suitable alphanumeric number assigned to identify the first tree. In certain embodiments, the first identification number is a randomly generated number. In some embodiments, the first identification number is a derived number that is uniquely associated with the first tree. For example, the first identification number is derived based at least in part upon a location (e.g., latitude and longitude coordinates) of the first tree. In various embodiments, the first identification number is supplied by an individual/organization that planted the first tree or retrieved from a database.

At the process 115, the one or more first image rendering settings for generating the first image of the first tree are determined based at least in part upon the first identification number according to certain embodiments. In various embodiments, the one or more first image rendering settings represent an initial set of drawing parameters used to construct the first image of the first tree. For example, the one or more first image rendering settings indicate a number of branches that are present in the first tree. As an example, the one or more first image rendering settings indicate a number of leaves that are present in the first tree. In certain embodiments, the one or more first image rendering settings include other drawing parameters (e.g., color, texture, shading, etc.) for generating the first image of the first tree.

According to some embodiments, the one or more first image rendering settings are generated deterministically by using the first identification number as a seed to a pseudo-random number generator. For example, the first identification number is inputted as the seed to the pseudo-random number generator to output the one or more first image rendering settings. As an example, the same one or more first image rendering settings are generated each time that the first identification number is inputted as the seed to the pseudo-random number generator.

At the process 120, the one or more first metadata associated with the first tree are received according to certain embodiments. For example, the one or more first metadata include information about the first tree such as age, geographic location, type (e.g., oak, maple, birch, spruce, pine, etc.), and/or form (e.g., spreading, weeping, round, columnar, irregular, etc.). In various embodiments, the one or more first metadata are supplied by an individual/organization that planted the first tree or retrieved from a database.

In some embodiments, the one or more first metadata include structural characteristics of the first tree given the age, type, and/or form of the first tree. According to certain embodiments, the structural characteristics of the first tree are determined based upon a set of rules. For example, one rule may indicate that if the first tree is of a particular type (e.g., maple), then a certain percentage of the branches would start from the top of the tree. As an example, another rule may indicate that if the first tree is of a specific age, then each branch would have a certain length. For example, a further rule may indicate that if the first tree has a particular form (e.g., irregular form), then a certain number of the branches would be located on the left side of the tree.

According to some embodiments, the structural characteristics of the first tree are determined based upon a model (e.g., a machine learning model, a statistical model, etc.). For example, relevant data (e.g., age, type, form, etc.) are provided to the model to determine the structural characteristics of the first tree. In certain embodiments, the model is an artificial neural network (e.g., a convolutional neural network, a recurrent neural network, a modular neural network, etc.). In some embodiments, the model has been trained, and the trained model possesses existing knowledge of which features in the relevant data are desirable or useful in determining the structural characteristics. For example, determining the structural characteristics involves that the trained model analyzes the relevant data based upon the existing knowledge. As an example, analyzing the relevant data includes various tasks such as performing feature extractions, applying pattern recognition, and/or other suitable tasks. In certain embodiments, other suitable computational methods (e.g., Bayesian network, finite-state machine, support vector machine, etc.) may be used to analyze the relevant data and determine the structural characteristics of the first tree.

At the process 125, the one or more second image rendering settings for generating the first image of the first tree are determined based at least in part upon the one or more first metadata according to some embodiments. In various embodiments, the one or more second image rendering settings represent a subsequent set of drawing parameters used to construct the first image of the first tree. For example, the one or more second image rendering settings indicate a distribution (e.g., separation) of the number of branches that are present in the first tree. As an example, the one or more second image rendering settings indicate a distribution of the number of leaves that are present in the first tree. In certain embodiments, the one or more second image rendering settings include other drawing parameters (e.g., color, texture, shading, etc.) for generating the first image of the first tree.

At the process 130, the first image of the first tree is generated based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings according to some embodiments. For example, a generative adversarial network is employed to generate the first image of the first tree given the one or more first image rendering settings derived from the first identification number and the one or more second image rendering settings conditioned by the one or more first metadata.

In certain embodiments, the first image of the first tree is generated and stored in memory (e.g., local device memory or in the cloud). For example, the first image is retrieved from the memory each time for future access. In some embodiments, the first image of the first tree is generated on-the-fly or regenerated from scratch in each instance. For example, the first image of the first tree is regenerated each time for future access.

According to certain embodiments, generating the first image of the first tree includes generating a plurality of images of the first tree. For example, the plurality of images depict growth of the first tree from a sapling to a full tree. In some embodiments, an accelerated maturity factor may be used for depicting the plurality of images such that a user can view and track the growth of the first tree in a shortened period of time instead of real-time. For example, the first tree may be a birch tree with a maturity period of 20 years. As an example, a first image in the plurality of images would show the birch tree as a sapling at the time of planting, a second image in the plurality of images would show the birch tree growing at 5 years of age, a third image in the plurality of images would show the birch tree growing at 12 years of age, and a fourth image in the plurality of images would show the birch fully grown at 20 years of age.

At the process 135, the second identification number associated with the second tree is received according to some embodiments. In various embodiments, the second tree corresponds to an existing real-world tree and the second identification number is any suitable alphanumeric number assigned to identify the second tree. In certain embodiments, the second identification number is a randomly generated number. In some embodiments, the second identification number is a derived number that is uniquely associated with the second tree. For example, the second identification number is derived based at least in part upon a location of the second tree. In various embodiments, the second identification number is supplied by an individual/organization that planted the second tree or retrieved from a database.

At the process 140, the one or more third image rendering settings for generating the second image of the second tree are determined based at least in part upon the second identification number according to certain embodiments. In various embodiments, the one or more third image rendering settings represent an initial set of drawing parameters used to construct the second image of the second tree. For example, the one or more third image rendering settings indicate a number of branches that are present in the second tree. As an example, the one or more third image rendering settings indicate a number of needles that are present in the second tree. In some embodiments, the one or more third image rendering settings include other drawing parameters (e.g., color, texture, shading, etc.) for generating the second image of the second tree.

According to certain embodiments, the one or more third image rendering settings are generated deterministically by using the second identification number as a seed to a pseudo-random number generator. For example, the second identification number is inputted as the seed to the pseudo-random number generator to output the one or more third image rendering settings. As an example, the same one or more third image rendering settings are generated each time that the second identification number is inputted as the seed to the pseudo-random number generator.

At the process 145, the one or more second metadata associated with the second tree are received according to some embodiments. For example, the one or more second metadata include information about the second tree such as age, geographic location, type, and/or form. In various embodiments, the one or more second metadata are supplied by an individual/organization that planted the second tree or retrieved from a database.

In certain embodiments, the one or more second metadata include structural characteristics of the second tree given the age, type, and/or form of the second tree. According to some embodiments, the structural characteristics of the second tree are determined based upon a set of rules. For example, one rule may indicate that if the second tree is of a particular type (e.g., pine), then a certain percentage of the branches would be located at the bottom of the tree. As an example, another rule may indicate that if the second tree is of a specific age, then the branches would be arranged in a certain number of levels. For example, a further rule may indicate that if the second tree has a particular form (e.g., conical form), then the branches would be organized into a certain shape.

According to certain embodiments, the structural characteristics of the second tree are determined based upon a model (e.g., a machine learning model). For example, relevant data (e.g., age, type, form, etc.) are provided to the model to determine the structural characteristics of the second tree. In some embodiments, the model is an artificial neural network. In certain embodiments, the model has been trained, and the trained model possesses existing knowledge of which features in the relevant data are desirable or useful in determining the structural characteristics. For example, determining the structural characteristics involves that the trained model analyzes the relevant data based upon the existing knowledge. As an example, analyzing the relevant data includes various tasks such as performing feature extractions, applying pattern recognition, and/or other suitable tasks. In some embodiments, other suitable computational methods (e.g., Bayesian network, finite-state machine, support vector machine, etc.) may be used to analyze the relevant data and determine the structural characteristics of the second tree.

At the process 150, the one or more fourth image rendering settings for generating the second image of the second tree are determined based at least in part upon the one or more second metadata according to certain embodiments. In various embodiments, the one or more fourth image rendering settings represent a subsequent set of drawing parameters used to construct the second image of the second tree. For example, the one or more fourth image rendering settings indicate a distribution (e.g., separation) of the number of branches that are present in the second tree. As an example, the one or more fourth image rendering settings indicate a distribution of the number of needles that are present in the second tree. In some embodiments, the one or more fourth image rendering settings include other drawing parameters (e.g., color, texture, shading, etc.) for generating the second image of the second tree.

At the process 155, the second image of the second tree is generated based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings according to certain embodiments. In some embodiments, the second image of the second tree is generated and stored in memory for future access. In certain embodiments, the second image of the second tree is generated on-the-fly for future access. According to some embodiments, generating the second image of the second tree includes generating a plurality of images of the second tree depicting growth of the second tree from a sapling to a full tree.

According to some embodiments, the first identification number associated with the first tree and the second identification number associated with the second tree are different. For example, the first and second trees are different trees. As an example, the one or more first image rendering settings based upon the first identification number are different from the one or more third image rendering settings based upon the second identification number.

According to certain embodiments, the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are the same. For example, the first and second trees share the same age, type, and form. As an example, the one or more second image rendering settings based upon the one or more first metadata are the same as the one or more fourth image rendering settings based upon the one or more second metadata. In various embodiments, the first image of the first tree and the second image of the second tree are different because the one or more first image rendering settings and the one or more third image rendering settings are different even though the one or more second image rendering settings and the one or more fourth image rendering settings are the same.

According to some embodiments, the first identification number associated with the first tree and the second identification number associated with the second tree are different. For example, the one or more first image rendering settings based upon the first identification number are different from the one or more third image rendering settings based upon the second identification number.

According to certain embodiments, the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are different. For example, the first and second trees do not share the same age, type, and/or form. As an example, the one or more second image rendering settings based upon the one or more first metadata are different from the one or more fourth image rendering settings based upon the one or more second metadata. In various embodiments, the first image of the first tree and the second image of the second tree are different because the one or more first image rendering settings and the one or more third image rendering settings are different, and the one or more second image rendering settings and the one or more fourth image rendering settings are different.

FIG. 2 is a simplified method for generating tree imagery according to some embodiments of the present disclosure. The diagrams are merely examples, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 200 includes process 210 for receiving a first identification number of a first tree, process 220 for determining one or more first image rendering settings, process 230 for receiving one or more first metadata of the first tree, process 240 for determining one or more second image rendering settings, process 250 for generating a first image of the first tree, process 260 for determining one or more third image rendering settings, process 270 for determining one or more fourth image rendering settings, and process 280 for generating a second image of the first tree. Although the above has been shown using a selected group of processes for the method, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. Other processes may be inserted to those noted above. Depending upon the embodiment, the sequence of processes may be interchanged with others replaced. For example, some or all processes of the method are performed by a computing device or a processor directed by instructions stored in memory. As an example, some or all processes of the method are performed according to instructions stored in a non-transitory computer-readable medium.

At the process 210, the first identification number associated with the first tree is received according to some embodiments. In certain embodiments, the first identification number is any suitable alphanumeric number used to identify the first tree.

At the process 220, the one or more first image rendering settings for generating the first image of the first tree are determined based at least in part upon the first identification number according to some embodiments. In certain embodiments, the one or more first image rendering settings represent a first set of drawing parameters used to construct the first image of the first tree. According to some embodiments, the one or more first image rendering settings are generated deterministically by using the first identification number as a seed to a pseudo-random number generator.

At the process 230, the one or more first metadata associated with the first tree are received according to certain embodiments. For example, the one or more first metadata include various information associated with the first tree such as age, geographic location, type, and/or form. In some embodiments, the one or more first metadata include structural characteristics of the first tree determined based upon the age, type, and/or form of the first tree.

At the process 240, the one or more second image rendering settings for generating the first image of the first tree are determined based at least in part upon the one or more first metadata according to certain embodiments. In some embodiments, the one or more second image rendering settings represent a second set of drawing parameters used to construct the first image of the first tree.

At the process 250, the first image of the first tree is generated based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings according to certain embodiments.

At the process 260, the one or more third image rendering settings for generating the second image of the first tree are determined based at least in part upon the first identification number according to some embodiments. In certain embodiments, the one or more third image rendering settings represent a third set of drawing parameters used to construct the second image of the first tree. According to some embodiments, the one or more third image rendering settings are generated deterministically by using the first identification number as a seed to the pseudo-random number generator. In various embodiments, the one or more first image rendering settings and the one or more third image rendering settings are the same because both are determined based upon the same first identification number associated with the first tree.

At the process 270, the one or more fourth image rendering settings for generating the second image of the first tree are determined based at least in part upon the one or more first metadata according to certain embodiments. In some embodiments, the one or more fourth image rendering settings represent a fourth set of drawing parameters used to construct the second image of the first tree. In various embodiments, the one or more second image rendering settings and the one or more fourth image rendering settings are the same because both are determined based upon the same one or more first metadata associated with the first tree.

At the process 280, the second image of the first tree is generated based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings according to certain embodiments. In various embodiments, the first and second images of the first tree are the same because the one or more first image rendering settings and the one or more third image rendering settings are the same, and the one or more second image rendering settings and the one or more fourth image rendering settings are the same.

II. One or More Computing Devices for Generating Tree Imagery According to Certain Embodiments

FIG. 3 is a simplified computing device for generating tree imagery according to certain embodiments of the present disclosure. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The computing device 300 includes a processing unit 304, a memory unit 306, an input unit 308, an output unit 310, a communication unit 312, and a storage unit 314. In various embodiments, the computing device 300 is configured to be in communication with a user 316 and/or a storage device 318. In some embodiments, the computing device 300 is configured to implement the method 100 of FIG. 1A and/or FIG. 1B, and/or the method 200 of FIG. 2 . Although the above has been shown using a selected group of components for the system, there can be many alternatives, modifications, and variations. For example, some of the components may be expanded and/or combined. Other components may be inserted to those noted above. Depending upon the embodiment, the arrangement of components may be interchanged with others replaced.

In various embodiments, the processing unit 304 is configured for executing instructions, such as instructions to implement the method 100 of FIG. 1A and/or FIG. 1B, and/or the method 200 of FIG. 2 . In some embodiments, the executable instructions are stored in the memory unit 306. In certain embodiments, the processing unit 304 includes one or more processing units (e.g., in a multi-core configuration). In some embodiments, the processing unit 304 includes and/or is communicatively coupled to one or more modules for implementing the methods and systems described in the present disclosure. In certain embodiments, the processing unit 304 is configured to execute instructions within one or more operating systems. In some embodiments, upon initiation of a computer-implemented method, one or more instructions is executed during initialization. In certain embodiments, one or more operations is executed to perform one or more processes described herein. In some embodiments, an operation may be general or specific to a particular programming language (e.g., C, C++, Java, or other suitable programming languages, etc.).

In various embodiments, the memory unit 306 includes a device allowing information, such as executable instructions and/or other data to be stored and retrieved. In some embodiments, the memory unit 306 includes one or more computer readable media. In certain embodiments, the memory unit 306 includes computer readable instructions for providing a user interface, such as to the user 316, via the output unit 310. In some embodiments, a user interface includes a web browser and/or a client application. For example, a web browser enables the user 316 to interact with media and/or other information embedded on a web page and/or a website. In certain embodiments, the memory unit 306 includes computer readable instructions for receiving and processing an input via the input unit 308. In some embodiments, the memory unit 306 includes random access memory (RAM) such as dynamic RAM (DRAM) or static RAM (SRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and/or non-volatile RAM (NVRAM).

In various embodiments, the input unit 308 is configured to receive input (e.g., from the user 316). In some embodiments, the input unit 308 includes a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or touch screen), a gyroscope, an accelerometer, a position sensor (e.g., GPS sensor), and/or an audio input device. In certain embodiments, the input unit 308 is configured to function as both an input unit and an output unit.

In various embodiments, the output unit 310 includes a media output unit configured to present information to the user 316. In some embodiments, the output unit 310 includes any component capable of conveying information to the user 316. In certain embodiments, the output unit 310 includes an output adapter such as a video adapter and/or an audio adapter. For example, the output unit 310 is operatively coupled to the processing unit 304 and/or a visual display device to present information to the user 316 (e.g., a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a cathode ray tube (CRT) display, a projected display, etc.). As an example, the output unit 310 is operatively coupled to the processing unit 304 and/or an audio display device to present information to the user 316 (e.g., a speaker arrangement or headphones).

In various embodiments, the communication unit 312 is configured to be communicatively coupled to a remote device. In some embodiments, the communication unit 312 includes a wired network adapter, a wireless network adapter, a wireless data transceiver for use with a mobile phone network (e.g., 3G, 4G, 5G, Bluetooth, etc.), and/or other mobile data networks. In certain embodiments, other types of short-range or long-range networks may be used. In some embodiments, the communication unit 312 is configured to provide email integration for communicating data between a server and one or more clients.

In various embodiments, the storage unit 314 is configured to enable communication between the computing device 300 and the storage device 318. In some embodiments, the storage unit 314 is a storage interface. For example, the storage interface is any component capable of providing the processing unit 304 with access to the storage device 318. In certain embodiments, the storage unit 314 includes an advanced technology attachment (ATA) adapter, a serial ATA (SATA) adapter, a small computer system interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any other component capable of providing the processing unit 304 with access to the storage device 318.

In various embodiments, the storage device 318 includes any computer-operated hardware suitable for storing and/or retrieving data. In certain embodiments, the storage device 318 is integrated in the computing device 300. In some embodiments, the storage device 318 includes a database such as a local database or a cloud database. In certain embodiments, the storage device 318 includes one or more hard disk drives. In some embodiments, the storage device 318 is external and is configured to be accessed by a plurality of server systems. In certain embodiments, the storage device 318 includes multiple storage units such as hard disks or solid state disks in a redundant array of inexpensive disks configuration. In some embodiments, the storage device 318 includes a storage area network and/or a network attached storage system.

III. One or More Systems for Generating Tree Imagery According to Certain Embodiments

FIG. 4 is a simplified system for generating tree imagery according to certain embodiments of the present disclosure. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The system 400 includes a client device 402, a network 404, and a server 406. Although the above has been shown using a selected group of components for the system, there can be many alternatives, modifications, and variations. For example, some of the components may be expanded and/or combined. Other components may be inserted to those noted above. Depending upon the embodiment, the arrangement of components may be interchanged with others replaced.

In various embodiments, the system 400 is used to implement the method 100 and/or the method 200. According to certain embodiments, the client device 402 includes a processor 410 (e.g., a central processing unit (CPU), a graphics processing unit (GPU)), a memory 412 (e.g., RAM, ROM, flash memory), a communications unit 614 (e.g., a network transceiver), a display unit 416 (e.g., a touchscreen), and one or more sensors 418 (e.g., an accelerometer, a gyroscope, a magnetometer, a barometer, a GPS sensor). As an example, the client device 402 is a mobile device (e.g., a smartphone) associated with a user.

According to some embodiments, the server 406 includes a processor 420 (e.g., a microprocessor, a microcontroller), a memory 422, a communications unit 424 (e.g., a network transceiver), and a data storage 426 (e.g., one or more databases). In some embodiments, the server 406 is a single server, while in certain embodiments, the server 406 includes a plurality of servers with distributed processing. In FIG. 4 , the data storage 426 is shown to be part of the server 406. In some embodiments, the data storage 426 is a separate entity coupled to the server 406 via a network such as the network 404.

According to certain embodiments, the server 406 includes various software applications stored in the memory 422 and executable by the processor 420. For example, these software applications include specific programs, routines, or scripts for performing functions associated with the method 100 and/or the method 200. As an example, the software applications include general-purpose software applications for data processing, network communication, database management, web server operation, and/or other functions typically performed by a server.

According to some embodiments, data/information determined or generated by the method 100 and/or the method 200 on the server 406 (e.g., first image of the first tree, second image of the second tree, etc.) are transmitted to the client device 402, via the network 404 (e.g., via a local area network (LAN), a wide area network (WAN), the Internet), to be displayed to the user via the display unit 416. In some embodiments, one or more processes of the method 100 and/or one or more processes of the method 200 are performed by the client device 402.

IV. Examples of Certain Embodiments of the Present Disclosure

According to certain embodiments, a method for generating tree imagery includes receiving a first identification number associated with a first tree and determining one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the method includes receiving one or more first metadata associated with the first tree and determining one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the method includes generating the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings. For example, the method is implemented according to at least Figure TA, FIG. 1B, and/or FIG. 2 .

As an example, the method for generating tree imagery further includes receiving a second identification number associated with a second tree and determining one or more third image rendering settings for generating a second image of the second tree based at least in part upon the second identification number. Additionally, the method includes receiving one or more second metadata associated with the second tree and determining one or more fourth image rendering settings for generating the second image of the second tree based at least in part upon the one or more second metadata. Moreover, the method includes generating the second image of the second tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings. For example, the method is implemented according to at least FIG. 1A and/or FIG. 1B.

According to some embodiments, a computing device for generating tree imagery includes one or more processors and a memory that stores instructions for execution by the one or more processors. The instructions, when executed, cause the one or more processors to receive a first identification number associated with a first tree and determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the instructions, when executed, cause the one or more processors to receive one or more first metadata associated with the first tree and determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the instructions, when executed, cause the one or more processors to generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings. For example, the computing device is implemented according to at least FIG. 3 and/or FIG. 4 .

According to certain embodiments, a non-transitory computer-readable medium stores instructions for generating tree imagery. The instructions are executed by one or more processors of a computing device. The non-transitory computer-readable medium includes instructions to receive a first identification number associated with a first tree and determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number. Also, the non-transitory computer-readable medium includes instructions to receive one or more first metadata associated with the first tree and determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata. Moreover, the non-transitory computer-readable medium includes instructions to generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings. For example, the non-transitory computer-readable medium is implemented according to at least FIG. 1A, FIG. 1B, FIG. 2 , FIG. 3 and/or FIG. 4 .

V. Examples of Machine Learning According to Certain Embodiments

According to some embodiments, a processor or a processing element may be trained using supervised machine learning and/or unsupervised machine learning, and the machine learning may employ an artificial neural network, which, for example, may be a convolutional neural network, a recurrent neural network, a deep learning neural network, a reinforcement learning module or program, or a combined learning module or program that learns in two or more fields or areas of interest. Machine learning may involve identifying and recognizing patterns in existing data in order to facilitate making predictions for subsequent data. Models may be created based upon example inputs in order to make valid and reliable predictions for novel inputs.

According to certain embodiments, machine learning programs may be trained by inputting sample data sets or certain data into the programs, such as images, object statistics and information, historical estimates, and/or actual repair costs. The machine learning programs may utilize deep learning algorithms that may be primarily focused on pattern recognition and may be trained after processing multiple examples. The machine learning programs may include Bayesian Program Learning (BPL), voice recognition and synthesis, image or object recognition, optical character recognition, and/or natural language processing. The machine learning programs may also include natural language processing, semantic analysis, automatic reasoning, and/or other types of machine learning.

According to some embodiments, supervised machine learning techniques and/or unsupervised machine learning techniques may be used. In supervised machine learning, a processing element may be provided with example inputs and their associated outputs and may seek to discover a general rule that maps inputs to outputs, so that when subsequent novel inputs are provided the processing element may, based upon the discovered rule, accurately predict the correct output. In unsupervised machine learning, the processing element may need to find its own structure in unlabeled example inputs.

VI. Additional Considerations According to Certain Embodiments

For example, some or all components of various embodiments of the present disclosure each are, individually and/or in combination with at least another component, implemented using one or more software components, one or more hardware components, and/or one or more combinations of software and hardware components. As an example, some or all components of various embodiments of the present disclosure each are, individually and/or in combination with at least another component, implemented in one or more circuits, such as one or more analog circuits and/or one or more digital circuits. For example, while the embodiments described above refer to particular features, the scope of the present disclosure also includes embodiments having different combinations of features and embodiments that do not include all of the described features. As an example, various embodiments and/or examples of the present disclosure can be combined.

Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Certain implementations may also be used, however, such as firmware or even appropriately designed hardware configured to perform the methods and systems described herein.

The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, EEPROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, application programming interface). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.

The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, DVD) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein. The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.

The computing system can include client devices and servers. A client device and server are generally remote from each other and typically interact through a communication network. The relationship of client device and server arises by virtue of computer programs running on the respective computers and having a client device-server relationship to each other.

This specification contains many specifics for particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations, one or more features from a combination can in some cases be removed from the combination, and a combination may, for example, be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Although specific embodiments of the present disclosure have been described, it will be understood by those of skill in the art that there are other embodiments that are equivalent to the described embodiments. Accordingly, it is to be understood that the present disclosure is not to be limited by the specific illustrated embodiments. 

What is claimed is:
 1. A method for generating tree imagery, the method comprising: receiving, by a computing device, a first identification number associated with a first tree; determining, by the computing device, one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number; receiving, by the computing device, one or more first metadata associated with the first tree; determining, by the computing device, one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata; and generating, by the computing device, the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.
 2. The method of claim 1, further comprising: receiving, by the computing device, a second identification number associated with a second tree; determining, by the computing device, one or more third image rendering settings for generating a second image of the second tree based at least in part upon the second identification number; receiving, by the computing device, one or more second metadata associated with the second tree; determining, by the computing device, one or more fourth image rendering settings for generating the second image of the second tree based at least in part upon the one or more second metadata; and generating, by the computing device, the second image of the second tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings.
 3. The method of claim 2, wherein the first identification number associated with the first tree and the second identification number associated with the second tree are different.
 4. The method of claim 3, wherein the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are the same.
 5. The method of claim 4, wherein: the one or more first image rendering settings and the one or more third image rendering settings are different; the one or more second image rendering settings and the one or more fourth image rendering settings are the same; and the first image of the first tree and the second image of the second tree are different.
 6. The method of claim 3, wherein the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are different.
 7. The method of claim 6, wherein: the one or more first image rendering settings and the one or more third image rendering settings are different; the one or more second image rendering settings and the one or more fourth image rendering settings are different; and the first image of the first tree and the second image of the second tree are different.
 8. The method of claim 1, further comprising: determining, by the computing device, one or more third image rendering settings for generating a second image of the first tree based at least in part upon the first identification number; determining, by the computing device, one or more fourth image rendering settings for generating the second image of the first tree based at least in part upon the one or more first metadata; and generating, by the computing device, the second image of the first tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings.
 9. The method of claim 8, wherein: the one or more first image rendering settings and the one or more third image rendering settings are the same; the one or more second image rendering settings and the one or more fourth image rendering settings are the same; and the first image of the first tree and the second image of the first tree are the same.
 10. A computing device for generating tree imagery, the computing device comprising: one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to: receive a first identification number associated with a first tree; determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number; receive one or more first metadata associated with the first tree; determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata; and generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.
 11. The computing device of claim 10, wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the one or more processors to: receive a second identification number associated with a second tree; determine one or more third image rendering settings for generating a second image of the second tree based at least in part upon the second identification number; receive one or more second metadata associated with the second tree; determine one or more fourth image rendering settings for generating the second image of the second tree based at least in part upon the one or more second metadata; and generate the second image of the second tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings.
 12. The computing device of claim 11, wherein the first identification number associated with the first tree and the second identification number associated with the second tree are different.
 13. The computing device of claim 12, wherein the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are the same.
 14. The computing device of claim 13, wherein: the one or more first image rendering settings and the one or more third image rendering settings are different; the one or more second image rendering settings and the one or more fourth image rendering settings are the same; and the first image of the first tree and the second image of the second tree are different.
 15. The computing device of claim 12, wherein the one or more first metadata associated with the first tree and the one or more second metadata associated with the second tree are different.
 16. The computing device of claim 10, wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the one or more processors to: determine one or more third image rendering settings for generating a second image of the first tree based at least in part upon the first identification number; determine one or more fourth image rendering settings for generating the second image of the first tree based at least in part upon the one or more first metadata; and generate the second image of the first tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings.
 17. The computing device of claim 16, wherein: the one or more first image rendering settings and the one or more third image rendering settings are the same; the one or more second image rendering settings and the one or more fourth image rendering settings are the same; and the first image of the first tree and the second image of the first tree are the same.
 18. A non-transitory computer-readable medium storing instructions for generating tree imagery, the instructions when executed by one or more processors of a computing device, cause the computing device to: receive a first identification number associated with a first tree; determine one or more first image rendering settings for generating a first image of the first tree based at least in part upon the first identification number; receive one or more first metadata associated with the first tree; determine one or more second image rendering settings for generating the first image of the first tree based at least in part upon the one or more first metadata; and generate the first image of the first tree based at least in part upon the one or more first image rendering settings and the one or more second image rendering settings.
 19. The non-transitory computer-readable medium of claim 18, wherein the instructions, when executed by the one or more processors, further cause the computing device to: receive a second identification number associated with a second tree; determine one or more third image rendering settings for generating a second image of the second tree based at least in part upon the second identification number; receive one or more second metadata associated with the second tree; determine one or more fourth image rendering settings for generating the second image of the second tree based at least in part upon the one or more second metadata; and generate the second image of the second tree based at least in part upon the one or more third image rendering settings and the one or more fourth image rendering settings.
 20. The non-transitory computer-readable medium of claim 19, wherein the first identification number associated with the first tree and the second identification number associated with the second tree are different. 